﻿/////////////////////////////////////////////////////////////////////////////////
///              ESCUELA SUPERIOR POLITECNICA DE CHIMBORAZO                   ///
///                        PROYECTO INTEGRADOR IV                            /// 
///                         PROYECTO SICOPS 2011                              /// 
/// ------------------------------------------------------------------------- ///  
///              **********GRUPO DE DESARROLLADORES**********                 ///
///                 ************PEGASO COMPANY**************                    /// 
///---------------------------------------------------------------------------///
///                                                         RIOBAMBA-ECUADOR  ///
///---------------------------------------------------------------------------///
///                FORMULARIO DE ASIGNACION DE SERVICIOS                    ///
///---------------------------------------------------------------------------///
///Permite la asignación de uno o varios servicios a un pedido                 ///
///                                              Responsable:  Villacres Erika   ///
/////////////////////////////////////////////////////////////////////////////////


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using LogisticaDeAcceso;
//Formulario para el registro de servicios a un proveedor

namespace Aplicacion.Formularios
{
    public partial class frmAsignacionServicios : Form
    {

        private bool varBandera = true;//Variable que ayuda al control de los espacios
        private string varCuenta;////////Nombre de la cuenta con l se esta trabajando 
        private string varPropietario;///Nombre del propietario de la cuenta
        private string varConexion;//////Coneccion a al base de datos

        public frmAsignacionServicios()
        {
            InitializeComponent();
        }
        public frmAsignacionServicios(string Cuenta, string Propietario, string Conexion)
        {
            InitializeComponent();
            varCuenta = Cuenta;
            varPropietario = Propietario;
            varConexion = Conexion;
        }

 
        private void frmAsignacionServicios_Load(object sender, EventArgs e)
        {
            metActualizarPedidos();//Llama a los dataset de los datso de pedido 
            metActualizarProveedores();//Llama a los dataset de actualizacion de proveedores
            metAsignar();//Asigna los nombre de la cuenta y del propietario a la parte de documentacion 
            //del formulario
        }
        
        private void metActualizarPedidos()
        {
            Negocios.ComponeteNegocios auxCom = new Negocios.ComponeteNegocios();
            auxCom.metActualizarPedidosAsignarS(varConexion,this.coleccionDeDatos1);
           // visualizarlos
        }

        private void metActualizarProveedores()
        {
            Negocios.ComponeteNegocios auxCom = new Negocios.ComponeteNegocios();
            auxCom.metActualizarProveedoresAsignarS(varConexion,this.coleccionDeDatos1);
           //Configuracion para el acceso a la vista de proveedores registrados
           //activacion de la vista proveedores registrados
        }

        public void metDocumentacion(string Cuenta, string Propietario, string Conexion)
        {
            //Asigna los nombre de la cuenta y del propietario a las variables del programa local
            //del formulario
            varCuenta = Cuenta;
            varPropietario = Propietario;
            varConexion = Conexion;
        }

        private void comNumeroPe_SelectedValueChanged(object sender, EventArgs e)
        {
            metActualizarServicios();
            metControl();//Valida casilleros
        }

        private void metActualizarServicios()
        {
            //Actualizar la vista que muestra los datos de los bienes registrados en la base
            this.coleccionDeDatos1.sp_MostrarNumPedidoServicios.Clear();//Limpia el data set
            Negocios.ComponeteNegocios auxCom = new Negocios.ComponeteNegocios();
            auxCom.metActualizarServiciosAsignarS(varConexion, cmbNumeroPe.Text,this.coleccionDeDatos1);
        }

        private void btnLlamadoProveedor_Click(object sender, EventArgs e)
        {
            Formularios.frmProveedor auxFrm = new frmProveedor(varConexion);
            coleccionDeDatos1.vs_getProveedoresResitrados.Clear();//ctualiza los casilleros de los proveedores registrados
            auxFrm.ShowDialog();//Activa el fromulario de proveedor
            metActualizarProveedores();
        }

        private void btnGuardarAsig_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("¿Desea continuar con el registro de la asignación actual?", "Atencion", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
            {
                metIngresarAsignacion();
                metActualizarEstado();//Verifica el estado del registro actual
            }

        }

        private void metActualizarEstado()
        {
            Negocios.ComponeteNegocios auxCom = new Negocios.ComponeteNegocios();
            auxCom.metActualizarEstadoAsignarS(varConexion, txtCodigoRegPr.Text);
            metActualizarServicios();
        }

        private void metIngresarAsignacion()
        {
            Negocios.ComponeteNegocios auxCom = new Negocios.ComponeteNegocios();
            auxCom.metIngresarAsignacionAsignarS(varConexion, txtCodigoRegPr.Text, txtCodigoProv.Text, txtModalidadAsig.Text, txtObservacionAsign.Text, dtpFechaAsign.Text, dtpFechaAsign.Text);
            //Activa el ingreso de los datos a la base por medio de la clase
        }

        private void metAsignar()
        {
            //Asigna los nombre de la cuenta y del propietario a la parte de documentacion 
            //del formulario
            tlsNombreCuentaRes.Text = varCuenta;
            tlsNombrePropietaRes.Text = varPropietario;
        }

        private void comNumeroPe_KeyPress(object sender, KeyPressEventArgs e)
        {
            e.Handled = true;//Impide que se escriba en los combo box
        }

        private void textObservacionAsign_KeyPress(object sender, KeyPressEventArgs e)
        {
            Aplicacion.clsControles.clsControles auxFrm = new Aplicacion.clsControles.clsControles();
            varBandera = auxFrm.metControlarEspacios(e, varBandera);//Controla que el ingreso sea de numeros o de letras
            varBandera = auxFrm.metPrecionarEspacio(e, varBandera);//Control de espacios para que ingresen mas de un espacio
        }

        private void metControl()
        {
            //Validar los datos de los casilleros
            if (txtObservacionAsign.Text.Length > 5 && (txtEstadoActula.Text != "ASIGNADO" && txtEstadoActula.Text != "INACTIVO") && txtModalidadAsig.Text.Length > 5 && txtCodigoRegPr.Text.Length > 5 && txtCodigoProv.Text.Length > 5)
                btnGuardarAsig.Enabled = true;
            else
            {
                btnGuardarAsig.Enabled = false;
                btnNuevoAsig.Enabled = true;
            }
        }

        private void textObservacionAsign_KeyUp(object sender, KeyEventArgs e)
        {
            metControl();//Llamado al control de validaciones
        }

        private void btnNuevoAsig_Click(object sender, EventArgs e)
        {
            metLimpiar();//Limpia los datos para nuevos ingresos
            btnNuevoAsig.Enabled = false;
            btnGuardarAsig.Enabled = false;
        }

        private void metLimpiar()
        {
            //Limpia los datos para nuevos ingresos
            txtModalidadAsig.Clear();
            txtObservacionAsign.Clear();
            txtModalidadAsig.Focus();
        }

        private void comNombreProv_SelectedValueChanged(object sender, EventArgs e)
        {
            metControl();//Llamado al met limpia los datos para nuevos ingresos
        }

        private void comDetalleRegPr_SelectedValueChanged(object sender, EventArgs e)
        {
            txtModalidadAsig.Clear();
            txtModalidadAsig.Focus();
            metControl();//Llamado al control de validaciones
        }

        private void tlsAcosis_Click(object sender, EventArgs e)
        {

        }
    }
}
